﻿#region codejockey.net Copyright Banner
/***************************************************************\
 * Copyright 2010 codejockey.net.                                *
 *                                                               *
 * This code is property of codejockey.net and cannot be used    *
 * without explicit permission given by a codejockey.net         *
 * Representative.  For details contact: source@codejockey.net   *
 \***************************************************************/
#endregion

using System;
using System.Collections.Generic;
using System.Drawing;

namespace codejockey.BingPaper.Utils
{
	public class BingImage : LastImageRetrieved, IDisposable
	{

		#region Private Members
		
		private List<HotSpot> _hotSpots = new List<HotSpot>();
		private List<Message> _messages = new List<Message>(); 
		
		#endregion

		#region Public Properties

		/// <summary>
		/// Gets or sets the copyright.
		/// </summary>
		/// <value>The copyright.</value>
		public string Copyright { get; set; }

		/// <summary>
		/// Gets or sets the hot spots.
		/// </summary>
		/// <value>The hot spots.</value>
		public List<HotSpot> HotSpots
		{
			get
			{
				return _hotSpots;
			}
			set
			{
				_hotSpots = value;
			}
		}

		/// <summary>
		/// Gets or sets the messsages.
		/// </summary>
		/// <value>The messsages.</value>
		public List<Message> Messsages
		{
			get
			{
				return _messages;
			}
			set
			{
				_messages = value;
			}
		}

		/// <summary>
		/// Gets or sets the image file location.
		/// </summary>
		/// <value>The image file location.</value>
		/// <remarks>This value is a pointer to the physicial file saved on the file system.</remarks>
		public string ImageFileName
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the current image.
		/// </summary>
		/// <value>The current image.</value>
		public Image CurrentImage
		{
			get;
			set;
		}

		/// <summary>
		/// Gets or sets the image URL.
		/// </summary>
		/// <value>The image URL.</value>
		public Uri ImageUrl
		{
			get;
			set;
		}
		
		#endregion

		#region IDisposable Members

		/// <summary>
		/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
		/// </summary>
		public void Dispose()
		{
			CurrentImage.Dispose();
		}

		#endregion
	}
}
